package com.sys.ai.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sys.ai.domain.AiKnowledgeFragmentation;

import java.util.List;

/**
 * 知识库分片Service接口
 *
 * @author LGY
 * @date 2025-05-26
 */
public interface IAiKnowledgeFragmentationService extends IService<AiKnowledgeFragmentation> {
    /**
     * 查询知识库分片
     *
     * @param id 知识库分片主键
     * @return 知识库分片
     */
    AiKnowledgeFragmentation selectAiKnowledgeFragmentationById(String id);

    /**
     * 查询知识库分片列表
     *
     * @param aiKnowledgeFragmentation 知识库分片
     * @return 知识库分片集合
     */
    List<AiKnowledgeFragmentation> selectAiKnowledgeFragmentationList(AiKnowledgeFragmentation aiKnowledgeFragmentation);

    /**
     * 新增知识库分片
     *
     * @param aiKnowledgeFragmentation 知识库分片
     * @return 结果
     */
    void insertAiKnowledgeFragmentation(AiKnowledgeFragmentation aiKnowledgeFragmentation);

    /**
     * 修改知识库分片
     *
     * @param aiKnowledgeFragmentation 知识库分片
     * @return 结果
     */
    void updateAiKnowledgeFragmentation(AiKnowledgeFragmentation aiKnowledgeFragmentation);

    /**
     * 批量删除知识库分片
     *
     * @param ids 需要删除的知识库分片主键集合
     * @return 结果
     */
    void deleteAiKnowledgeFragmentationByIds(String[] ids);

    /**
     * 批量删除知识库分片
     *
     * @param knowledgeIds 需要删除的知识库主键集合
     */
    void deleteBatch(List<String> knowledgeIds);

    /**
     * 根据知识库id查询所有分片
     *
     * @param knowledgeId 知识库id
     * @return
     */
    List<AiKnowledgeFragmentation> listAllByKnowledgeId(String knowledgeId);

    /**
     * 根据知识库文件id查询所有分片
     *
     * @param knowledgeFileId 知识库文件id
     * @return
     */
    List<AiKnowledgeFragmentation> listAllByKnowledgeFileId(String knowledgeFileId);

    /**
     * 根据知识库文件id查询所有分片
     *
     * @param search      查询条件
     * @param knowledgeId 知识库id
     * @return
     */
    String queryFragmentationBySearch(String knowledgeId, String search);
}